<?php
$prg = isset($program) ? $program : 'unknown';
$requiredFields = array(
        'fstname' => 'STRING','lname' => 'STRING','tel' => 'INT',
        'mail' => 'MAIL','kodikos' => 'STRING'
);
$error = array();

function showError ($name, Array $error)
{
    if (array_key_exists($name, $error))
    {
        $msg = '<tr style="color:red;"><td></td><td><p>%s<p></td></tr>';
        printf($msg, $error[$name]);
    }
    else
        return;
}

function checkSet ($name)
{
    if (isset($_POST[$name]) && ! empty($_POST[$name]))
        return true;
    return false;
}

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    foreach ($requiredFields as $name => $type)
    {
        if (! checkSet($name))
        {
            $errorMsg = '';
            switch ($type)
            {
                case 'INT':
                    $errorMsg = 'Παρακαλούμε εισάγετε έγκυρα ψηφία.';
                    break;
                case 'STRING':
                    $errorMsg = 'Παρακαλούμε εισάγετε έγκυρoυς χαρακτήρες.';
                    break;
                case 'MAIL':
                    $errorMsg = 'Παρακαλούμε εισάγετε έγκυρο email.';
                    break;
                default:
                    $errorMsg = 'Σφάλμα στο συγκεκριμένο πεδίο.';
                    break;
            }
            $error[$name] = $errorMsg;
            $args["error"] = $errorMsg;
        }
    }

    if (! count($error))
    {
        $fname = $fname = preg_replace('#[^A-Za-z]^[α-ωΑ-Ω]*$#i', '',
                $_POST["fstname"]);
        $lname = preg_replace('#[^A-Za-z]^[α-ωΑ-Ω]*$#i', '', $_POST["lname"]);
        $tele = preg_replace('#[^0-9]#i', '', $_POST["tel"]);
        $mobile = preg_replace('#[^0-9]#i', '', $_POST["mbl"]);
        $email = filter_var($_POST["mail"], FILTER_VALIDATE_EMAIL);
        $program = ($_POST["prog"] == 'turism') ? 'Τουρισμού' : 'Ανέργων 18-29';
        $kodikos = htmlspecialchars($_POST["kodikos"]);
        $kodikosName = $program == 'turism' ? 'ΣΕΤΕ' : 'ΚΑΥΑΣ';
        if (strlen($kodikos) != 26)
        {
            $error['kodikos'] = 'Άκυρος κωδικός ' . $kodikosName;
        }

        $voucherMailForm = <<<FORM

            Αίτηση ενδιαφέροντος για το πρόγραμμα: $program

#Στοιχεία Επικοινωνίας
------------------------------
Όνομα:              $fname
Επίθετο:            $lname
Σταθερό τηλ.:       $tele
Κινητό τηλ.:        $mobile
E-mail:             $email

$kodikosName:       $kodikos

------------------------------
Το mail είναι αυτοματοποιημένο.
Σε περίπτωση ψευδών η ανακριβή στοιχείων
διαγράψτε το.
FORM;
        if (! count($error))
        {
            $values[] = 0;
            $values[2] = $email;
            $values[4] = $lname . ' ' . $fname;
            $values[0] = $program;

            require_once ("../functionality/mailer.php");

            if (sendMail(true, $values, $voucherMailForm))
                $args["result"] = "Η αίτηση σας στάλθηκε επιτυχώς. Το προσωπικό μας θα επικοινωνήσει μαζί σας το συντομότερο δυνατό.";
            else
                $args["error"] = "Αποτυχία αποστολής της αίτησης. Παρακαλώ δοκιμάστε αργότερα.";
        }
    }
}
?>
<div id="form">
  <form
    action="../pageParts/voucherForm.php"
    method="post"
    id="voucherForm">
    <input
      type="hidden"
      name="prog"
      value="<?php echo isset($prg) ? $prg : '';  ?>" />
    <div id="errorMsg">
                                 <?php /* echo $args["error"]; */ ?>
                            </div>
    <p>
      Τα πεδία με αστερίσκο (<b style="color: #de5b22;">*</b>) είναι
      υποχρεωτικά.
    </p>
    <h3>Στοιχεία Επικοινωνίας</h3>
    <table title="">
      <tr>
        <td><label for="firstname">Όνομα<code>
              <b style="color: #de5b22;">*</b>
            </code></label></td>
        <td><input
          type="text"
          id="firstname"
          name="fstname"
          required="required"
          value=""
          onblur="validateChars(document.getElementById('firstname').value,'firstname')" />
        </td>
      </tr>
      <?php showError('fstname', $error);?>
      <tr>
        <td><label for="lastname">Επίθετο<code>
              <b style="color: #de5b22;">*</b>
            </code></label></td>
        <td><input
          type="text"
          id="lastname"
          name="lname"
          value=""
          required="required"
          onblur="validateChars(document.getElementById('lastname').value,'lastname')" />
        </td>
      </tr>
      <?php showError('lname', $error);?>
      <tr>
        <td><label for="tele">Τηλέφωνο<code>
              <b style="color: #de5b22;">*</b>
            </code></label></td>
        <td><input
          type="text"
          id="tele"
          name="tel"
          value="<?php ?>"
          maxlength=14
          required="required"
          onblur="validateNums(document.getElementById('tele').value, 'tele')" />
        </td>
      </tr>
      <?php showError('tel', $error);?>
      <tr>
        <td><label for="mobile">Κινητό</label></td>
        <td><input
          type="text"
          id="mobile"
          name="mbl"
          value="<?php ?>"
          maxlength=14
          onblur="validateNums(document.getElementById('mobile').value, 'mobile')" />
        </td>
      </tr>
      <?php showError('mbl', $error);?>
      <tr>
        <td><label for="mail">E-mail<code>
              <b style="color: #de5b22;">*</b>
            </code></label></td>
        <td><input
          type="email"
          id="mail"
          name="mail"
          placeholder="example@example.com"
          value=""
          required="required" /></td>
      </tr>
      <?php showError('mail', $error); ?>
      <tr>
        <td></td>
      </tr>
    </table>
    <br />
    <h3>Πληροφορίες</h3>
    <br />
    <table title="">
     <?php $name = ($prg == 'turism') ? 'ΣΕΤΕ' : 'ΚΑΥΑΣ'?>
     <tr>
        <td><label for="kodikos">Κωδικός <?php echo $name; ?><code>
              <b style="color: #de5b22;">*</b>
            </code></label>
          <ol style="list-style: none; float: right;">
            <li class="nav_title">
              <img
                alt="help"
                src="../css/images/help.png" />
              <div class="nav_sub">
                <p>Ο αριθμος <?php echo $name; ?> που λάβατε όταν σημπληρώσατε την αίτηση</p>
                <p>Μήκους 2 χαρακτήρων ακολουθούμενων απο 24 ψηφία, χωρίς κενά.</p>
                <p>Παράδειγμα: YU555552345698758678235424</p>
              </div>
            </li>
          </ol></td>
        <td><input
          type="text"
          id="kodikos"
          name="kodikos"
          value=""
          maxlength=26
          required="required"
          onblur="" /></td>
      </tr>
      <?php showError('kodikos', $error);?>
         </table>
    <br /> <br />
    <div id="result">
      <input
        style="margin-left: 50px;"
        type="reset"
        value="Καθαρισμός"
        class="more" />
                          <?php
                        if (! isset($args["result"]) || empty($args["result"]))
                        {
                            ?><input
        style="margin-left: 50px;"
        type="submit"
        value="Αποστολή"
        class="more"
        onclick="onSend()" /><?php
                        }
                        else
                        {
                            print
                                    ("<br /> <h4>" . htmlEntities(
                                            $args["result"],
                                            ENT_QUOTES | ENT_IGNORE, "UTF-8") .
                                             "</h5>");
                        }
                        ?>

                       </div>
  </form>
  <script type="text/javascript">
    var frm = $('#voucherForm');
    frm.submit(function () {
        $('#result').empty().append('Παρακαλώ περιμένετε, η φόρμα σας είναι υπο επεξεργασία');
        $.ajax({
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: frm.serialize(),
            success: function (data) {
                   $( "#form" ).empty().append( data );
                   $(".nav_sub").hide();
                    }
              });
            return false;
            });
</script>
</div>
